package se.webbzon.boltzmann.editor.component.sequence.factory;

import java.util.ArrayList;
import java.util.Collection;

import se.webbzon.boltzmann.factory.AbstractFactoryException;
import se.webbzon.boltzmann.game.object.dialogue.layout.DefaultChoiceDialogueLayout;
import se.webbzon.boltzmann.game.object.dialogue.layout.DefaultIntegerDialogueLayout;
import se.webbzon.boltzmann.game.object.dialogue.layout.DefaultItemDialogueLayout;
import se.webbzon.boltzmann.game.object.dialogue.layout.DefaultSimpleDialogueLayout;

public class DefaultSequenceRowFactoryGroup extends SequenceRowFactoryGroup {

	/*============================================================
	Constructors
	============================================================*/
	
	/** Creates a default sequence row factory group. **/
	public DefaultSequenceRowFactoryGroup()
			throws AbstractFactoryException {
		super(makeFactories());
	}
	
	/*============================================================
	Private Methods
	============================================================*/
	
	private static final Collection<AbstractSequenceRowFactory> makeFactories() {
		ArrayList<AbstractSequenceRowFactory> factories = 
				new ArrayList<AbstractSequenceRowFactory>();
		
		factories.add(new AssignmentRowFactory());
		factories.add(new ConditionRowFactory());
		factories.add(new GameEventRowFactory());
		factories.add(new SimpleDialogueRowFactory(new DefaultSimpleDialogueLayout()));
		factories.add(new ChoiceDialogueRowFactory(new DefaultChoiceDialogueLayout()));
		factories.add(new IntegerDialogueRowFactory(new DefaultIntegerDialogueLayout()));
		factories.add(new ItemDialogueRowFactory(new DefaultItemDialogueLayout()));
		
		return factories;
	}

}
